package com.lcx.plugin.actions;

import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.lcx.plugin.dict.GlobalDict;
import com.lcx.plugin.enums.DatabaseType;
import com.lcx.plugin.tool.CacheDataUtils;
import com.lcx.plugin.ui.DbSettings;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

/**
 * 数据库连接配置菜单
 *
 * @author daxiong
 * @date 2023/6/16 下午3:28
 */
public class DbSettingAction extends AnAction {

    /**
     * 缓存数据工具类
     */
    private final CacheDataUtils cacheDataUtils = CacheDataUtils.getInstance();

    /**
     * 构造方法
     *
     * @param text 菜单名称
     */
    DbSettingAction(@Nullable String text) {
        super(text);
    }

    /**
     * 处理方法
     *
     * @param event 事件对象
     */
    @Override
    public void actionPerformed(@NotNull AnActionEvent event) {
        Project project = event.getProject();
        if (project == null) {
            return;
        }
        // 校验数据库是否支持
        if (!DatabaseType.supportDbType(cacheDataUtils.getDbConfig().getDbType())) {
            Messages.showWarningDialog("不支持的数据库类型！", GlobalDict.TITLE_INFO);
            return;
        }
        // 需要jdbc来执行sql
        cacheDataUtils.setSql2Clipboard(false);
        // 开始处理
        new DbSettings(project).show();
    }

}
